package com.twq.basic.bigpicture

/**
 * Created by tangweiqun on 2017/11/27.
 * 使用元组Tuples
 */
object Step9 {
  def main(args: Array[String]): Unit = {
    //1、和List一样， Tuple也是不可变的，但是和List不一样的是，Tuple可以容纳不同类型的对象
    val pair = (99, "Luftballons") //pair类型被推断为Tuple2[Int, String]
    println(pair._1)
    println(pair._2)

    //2、如果一个方法想返回多个不同类型的对象的时候，tuple是非常有用的
    //在java中，你可以创建一个普通的java bean来容纳不同类型的对象，而scala中你只需要用Tuple就行

    //3、三元组
    val temp: Tuple3[Int, Double, String] = (1, 3.14, "jekky")
    val temp2: (Int, Double, String) = (1, 3.14, "jekky")

    //4、访问元组的元素
    val d = temp._2 //通过_1、_2、_3等访问元组
    val s = temp _3

    val (first, second, third) = temp
    println(first)
    println(second)
    println(third)

    val (theFirst, _, _) = temp

  }
}
